home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- from __future__ import with_statement
- from contextlib import contextmanager
- import logging
- import os
- import sys
- import time
- log = logging.getLogger('util.primitives.files')
-
- def filecontents(filename):
-
- try:
- f = _[2]
- return f.read()
- finally:
- pass
-
-
-
- def atomic_write(filename):
- (path, filepart) = os.path.split(filename)
- tempfile = os.path.join(path, '.%s.tmp' % filepart)
- f = open(tempfile, 'w')
-
- try:
- yield f
- except Exception:
- f.close()
- os.remove(tempfile)
- raise
- finally:
- f.close()
-
- replace_file(filename, tempfile)
-
- atomic_write = contextmanager(atomic_write)
- if sys.platform == 'win32':
- from ctypes import windll, WinError
- ReplaceFileW = windll.kernel32.ReplaceFileW
- REPLACEFILE_WRITE_THROUGH = 1
-
- def replace_file(filename, replacement):
- if not ReplaceFileW(filename, replacement, None, REPLACEFILE_WRITE_THROUGH, 0, 0):
- raise WinError()
-
-
- else:
-
- def replace_file(filename, replacement):
- backup = filename + '.backup.' + str(time.time())
- os.rename(filename, backup)
-
- try:
- os.rename(replacement, filename)
- except:
- os.rename(backup, filename)
- raise
-
-
-